package cn.tedu.charging.account.dao.persist.repository;

import cn.tedu.charging.account.pojo.entity.ChargingStation;
import cn.tedu.charging.account.pojo.vo.ChargingStationStandardVO;

import java.util.Collection;
import java.util.List;

/**
 * 处理充电站数据的存储库接口
 *
 * @author wyy
 * @version 1.0
 */
public interface IChargingStationRepository {
    /**
     * 插入充电站数据
     *
     * @param chargingStation 充电站数据
     * @return 受影响的行数
     */
    int insert(ChargingStation chargingStation);

    /**
     * 根据充电站id删除充电站数据
     *
     * @param id 充电站数据
     * @return 受影响的行数
     */
    int deleteById(Long id);

    /**
     * 根据充电站id修改充电站的数据
     *
     * @param chargingStation 封装了充电站id和新的数据的对象
     * @return 受影响的行数
     */
    int updateById(ChargingStation chargingStation);

    /**
     * 根据充电站地址统计充电站数据的数量
     *
     * @param address 用户名
     * @return 匹配用户名的用户数据的数据
     */
    int countByAddress(String address);

    /**
     * 根据充电站id批量查询充电站信息
     *
     * @param ids 充电站id
     * @return 充电站的信息集合
     */
    List<ChargingStation> selectBatchIds(Collection<Long> ids);

    /**
     * 查询全部
     * @return 充电站的list集合
     */
    List<ChargingStation> selectAll();

    /**
     * 查询全部
     * @return 充电站的list集合
     */
    List<ChargingStationStandardVO> selectAllChargingDevice(Collection<Long> id, String searchName);
}
